
import java.util.HashMap;

/**
 * Dictionary.java
 * Descripción: Representa a un diccionario que puede traducir del código binario generado
 *              por el árbol de Kauffman a letras.
 * @author Oscar Castañeda 11086
 * @since 11/09/2012
 * @version 1.1
 */

public class Dictionary {
    
    private HashMap<String, String> definitions;    //Mapa donde se almacenan las direcciones.
    
    /**
     * Construye un nuevo diccionario.
     */
    public Dictionary(){
        definitions = new HashMap(10);
    }
    
    /**
     * Añade una nueva entrada al diccionario.
     * @param encryptedCode Código binario.
     * @param decryptedChar Carácter correspondiente al código binario.
     */
    public void add(String encryptedCode, String decryptedChar){
        definitions.put(encryptedCode, decryptedChar);
    }
    
    /**
     * Revisa si existe la entrada indicada en el diccionario.
     * @param code Código binario de la entrada a revisar.
     * @return boolean true si existe; false en caso contrario.
     */
    public boolean hasDefinition(String code){
        return definitions.containsKey(code);
    }
    
    /**
     * Traduce del código binario a un carácter.
     * @param code Código binario del objeto.
     * @return String con el carácter corrrespondiente; null de no existir el objeto.
     */
    public String translate(String code){
        return definitions.get(code);
    }
    
    /**
     * Reinicia el diccionario, borrando todas sus entradas.
     */
    public void reset(){
        definitions.clear();
    }
    
    @Override
    public String toString(){
        return definitions.toString() + definitions.size();
    }
    
    
}